package com.core.base.searchForm.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.core.base.searchForm.enums.SearchType;

/**
 * 可查询的字段属性注解
 * RetentionPolicy.RUNTIME 运行时可见
 * @Target(ElementType.FIELD) 字段、枚举的常量
 * @author pt-chenqw
 *
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface SearchProp {
	
	public static final String DEFAULT_OR_KEY="__OR_KEY__";
	public static final String DEFAULT_AND_KEY="__AND_KEY__";

	/**
	 * 指定搜索的类型,如like,or,and,in,not in等等
	 * @return
	 */
	public SearchType searchType();
	
	/**
	 * 对应数据库的字段名,如果不填将使用属性的名字
	 * @return
	 */
	public String fieldName() default "";
	
	/**
	 * 不加入搜索条件的值,如int,-1为搜索全部
	 * @return
	 */
	public String nullValue() default "";
	
	/**
	 * or条件的分组消息
	 * @return
	 */
	public String orKey() default DEFAULT_OR_KEY;
	
	/**
	 * and条件的分组消息
	 * @return
	 */
	public String andKey() default DEFAULT_AND_KEY;
	
}
